package com.ruoyi.qiushi.domain.mall;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 普通商品订单对象 trade_order
 *
 * @author ruoyi
 * @date 2023-12-27
 */
public class TradeOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    private String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * 用户编号
     */
    @Excel(name = "用户编号")
    private Long userId;

    /**
     * 订单流水号
     */
    @Excel(name = "订单流水号")
    private String no;

    /**
     * 1待付款 2待发货 3待收货 4已取消 5已完成
     */
    @Excel(name = "1待付款 2待发货 3待收货 4已取消 5已完成 ")
    private String status;

    /**
     * 购买的商品数量
     */
    @Excel(name = "购买的商品数量")
    private Long productCount;

    /**
     * 第三方支付流水号(如支付宝)
     */
    @Excel(name = "第三方支付流水号(如支付宝)")
    private String payTradeNo;

    /**
     * 订单支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:MM:ss")
    @Excel(name = "订单支付时间", width = 30, dateFormat = "yyyy-MM-dd hh:MM:ss")
    private Date payTime;

    /**
     * 支付成功的支付渠道
     */
    @Excel(name = "支付成功的支付渠道")
    private String payChannel;

    /**
     * 订单完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:MM:ss")
    @Excel(name = "订单完成时间", width = 30, dateFormat = "yyyy-MM-dd hh:MM:ss")
    private Date finishTime;

    /**
     * 订单取消时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:MM:ss")
    @Excel(name = "订单取消时间", width = 30, dateFormat = "yyyy-MM-dd hh:MM:ss")
    private Date cancelTime;

    /**
     * 总价
     */
    @Excel(name = "总价")
    private BigDecimal totalPrice;

    /**
     * 实际付款金额
     */
    @Excel(name = "实际付款金额")
    private BigDecimal actualPrice;

    /**
     * 运费
     */
    @Excel(name = "运费")
    private BigDecimal deliveryPrice;

    /**
     * 发货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:MM:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd hh:MM:ss")
    private Date deliveryTime;

    /**
     * 收货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:MM:ss")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd hh:MM:ss")
    private Date receiveTime;

    /**
     * 快递方式
     */
    @Excel(name = "快递方式")
    private String logisticsCode;

    /**
     * 快递单号
     */
    @Excel(name = "快递单号")
    private String logisticsNo;

    /**
     * 收件人名称
     */
    @Excel(name = "收件人名称")
    private String receiverName;

    /**
     * 收件人手机
     */
    @Excel(name = "收件人手机")
    private String receiverMobile;

    /**
     * 收件人详细地址
     */
    @Excel(name = "收件人详细地址")
    private String receiverDetailAddress;

    /**
     * 0正常 1删除
     */
    private String delFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public String getNo() {
        return no;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setProductCount(Long productCount) {
        this.productCount = productCount;
    }

    public Long getProductCount() {
        return productCount;
    }

    public void setPayTradeNo(String payTradeNo) {
        this.payTradeNo = payTradeNo;
    }

    public String getPayTradeNo() {
        return payTradeNo;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayChannel(String payChannel) {
        this.payChannel = payChannel;
    }

    public String getPayChannel() {
        return payChannel;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() {
        return finishTime;
    }

    public void setCancelTime(Date cancelTime) {
        this.cancelTime = cancelTime;
    }

    public Date getCancelTime() {
        return cancelTime;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setDeliveryPrice(BigDecimal deliveryPrice) {
        this.deliveryPrice = deliveryPrice;
    }

    public BigDecimal getDeliveryPrice() {
        return deliveryPrice;
    }

    public void setDeliveryTime(Date deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() {
        return deliveryTime;
    }

    public void setReceiveTime(Date receiveTime) {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime() {
        return receiveTime;
    }

    public void setLogisticsCode(String logisticsCode) {
        this.logisticsCode = logisticsCode;
    }

    public String getLogisticsCode() {
        return logisticsCode;
    }

    public void setLogisticsNo(String logisticsNo) {
        this.logisticsNo = logisticsNo;
    }

    public String getLogisticsNo() {
        return logisticsNo;
    }

    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }

    public String getReceiverName() {
        return receiverName;
    }

    public void setReceiverMobile(String receiverMobile) {
        this.receiverMobile = receiverMobile;
    }

    public String getReceiverMobile() {
        return receiverMobile;
    }

    public void setReceiverDetailAddress(String receiverDetailAddress) {
        this.receiverDetailAddress = receiverDetailAddress;
    }

    public String getReceiverDetailAddress() {
        return receiverDetailAddress;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("no", getNo())
                .append("status", getStatus())
                .append("productCount", getProductCount())
                .append("payTradeNo", getPayTradeNo())
                .append("payTime", getPayTime())
                .append("payChannel", getPayChannel())
                .append("finishTime", getFinishTime())
                .append("cancelTime", getCancelTime())
                .append("totalPrice", getTotalPrice())
                .append("actualPrice", getActualPrice())
                .append("deliveryPrice", getDeliveryPrice())
                .append("deliveryTime", getDeliveryTime())
                .append("receiveTime", getReceiveTime())
                .append("logisticsCode", getLogisticsCode())
                .append("logisticsNo", getLogisticsNo())
                .append("receiverName", getReceiverName())
                .append("receiverMobile", getReceiverMobile())
                .append("receiverDetailAddress", getReceiverDetailAddress())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
